package com.teamb6.shop.service;

import com.teamb6.shop.domain.Goods;
import com.teamb6.shop.domain.GoodsExample;
import com.teamb6.shop.domain.ImagePath;

import java.util.Date;
import java.util.List;

public interface GoodsService {
    //查询商品列表
    List<Goods> listGoods(String keyword);
    //删除选中的单上商品信息
    int deleteGoodsByPrimaryKey(Integer id);
    //删除选中的多行商品信息
    int multiDelGoods(String ids);
    //获取选中的商品信息
    Goods findGoodsByPrimaryKey(Integer id);
    //更新修改后的商品信息
    int updateGoods(Goods goods);
    //添加商品信息
    Integer addGoods(Goods goods);
    //将图片路径添加到数据库中
    void addImagePath(ImagePath imagePath);

    List<Goods> selectByExample(GoodsExample example);

    void deleteGoodsById(Integer goodsid);

    void updateGoodsById(Goods goods);

    List<ImagePath> findImagePath(Integer goodsid);

    Goods selectById(Integer goodsid);

    //活动、图片、商品多表查询查出商品
    List<Goods> getActivityGoods();
    //根据活动查询所有正在进行活动的商品
    List<Goods> selectAllByActivity(Integer pageSize, Integer pageNum);



    //根据分类id查询
    List<Goods> getByCategoryId(Integer cateId,Integer pageNum,Integer pageSize);


    //根据时间查询
    List<Goods> getByTime();

    //根据时间查询所有
    List<Goods> getAllByTime(Integer pageSize,Integer pageNum);




    List<Goods> findAllProducts(Integer pageSize, Integer pageNum);

    List<Goods> mySelectByName(String goodsName,Integer pageSize, Integer pageNum);


    //根据订单号多表查询商品
    List<Goods> getIndentGoods(Integer orderid);

    //根据热度查询
    List<Goods> getByHot();
    //按热度查询所有
    List<Goods> getAllByHot(Integer pageSize,Integer pageNum);
    //按价格查询所有（低到高）
    List<Goods> getHotByLowPrice(Integer pageSize,Integer pageNum);
    //按价格查询所有（搞到低）
    List<Goods> getHotByHighPrice(Integer pageSize, Integer pageNum);
    //按价格查询所有（低到高）(活动商品)
    List<Goods> getActivityByLowPrice(Integer pageSize, Integer pageNum);
    //按价格查询所有（搞到低）(活动商品)
    List<Goods> getActivityByHighPrice(Integer pageSize, Integer pageNum);
    //按价格查询所有（低到高）(分类商品)




    List<Goods> getByCategoryIdLow(Integer categoryId, Integer pageNum, Integer pageSize);
    //按价格查询所有（低到高）(分类商品)
    List<Goods> getByCategoryIdHigh(Integer categoryId, Integer pageNum, Integer pageSize);
    //所有商品价格排序
    List<Goods> getAllsByLowPrice(Integer pageSize, Integer pageNum);
    //所有商品价格排序
    List<Goods> getAllsByHighPrice(Integer pageSize, Integer pageNum);
}
